package _01_链表;

/**
 *
 * 链接：https://leetcode-cn.com/problems/linked-list-cycle/
 * @author : zjj
 * @date : 2021/1/13 16:05
 */
public class _141_环形链表 {
    /**
     * 解题思路：
     * 1 快慢指针
     * 2 当两个节点相遇了，说明有环
     * 3 当快指针为null，或者快指针的节点下一个节点为null说明没有环
     * @param head  头节点
     * @return      是否有环
     */
    public boolean hasCycle(ListNode head) {
        if(head == null || head.next == null ){
            return false;
        }
        ListNode slow = head;
        ListNode fast = head.next;
        while (fast != null && fast.next != null){
            if (slow == fast){
                return true;
            }
            slow = slow.next;
            fast = fast.next.next;
        }
        return false;
    }




}
